🐾 OpenClaw スキルカタログ
20ワーカー並列解析 — クリックでSKILL.md全文表示 — ドメイン × ツール要件 × 料金の3軸分類
2,149
総スキル数
1144
🆓 無料
759
🔓 フリーミアム
141
💰 有料
105
❓ 不明
2,149 件
名前順
料金順
ツール種別順
ドメイン順
⊞
☰
⊞
☰
✕
読み込み中…
\n >\n )\n}\n```\n\nAdd to root layout:\n```tsx\n// app/layout.tsx\nimport { GoogleAnalytics } from '@/components/GoogleAnalytics'\n\n// Add inside or :\n
\n```\n\n### Next.js (Pages Router - pages/ directory)\n\nModify `pages/_app.tsx`:\n\n```tsx\n// pages/_app.tsx\nimport type { AppProps } from 'next/app'\nimport Script from 'next/script'\n\nconst GA_MEASUREMENT_ID = process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID\n\nexport default function App({ Component, pageProps }: AppProps) {\n return (\n <>\n \n \n
\n >\n )\n}\n```\n\n### React (Vite/CRA)\n\nCreate `src/lib/analytics.ts`:\n\n```typescript\n// src/lib/analytics.ts\nexport const GA_MEASUREMENT_ID = import.meta.env.VITE_GA_MEASUREMENT_ID\n\ndeclare global {\n interface Window {\n gtag: (...args: unknown[]) => void\n dataLayer: unknown[]\n }\n}\n\nexport const initGA = () => {\n if (typeof window === 'undefined') return\n\n const script = document.createElement('script')\n script.src = `https://www.googletagmanager.com/gtag/js?id=${GA_MEASUREMENT_ID}`\n script.async = true\n document.head.appendChild(script)\n\n window.dataLayer = window.dataLayer || []\n window.gtag = function gtag() {\n window.dataLayer.push(arguments)\n }\n window.gtag('js', new Date())\n window.gtag('config', GA_MEASUREMENT_ID)\n}\n\nexport const pageview = (url: string) => {\n window.gtag('config', GA_MEASUREMENT_ID, {\n page_path: url,\n })\n}\n\nexport const event = (action: string, params?: Record
) => {\n window.gtag('event', action, params)\n}\n```\n\nInitialize in `src/main.tsx`:\n\n```tsx\nimport { initGA } from './lib/analytics'\n\n// Initialize before render\nif (import.meta.env.PROD) {\n initGA()\n}\n```\n\n### Vue 3 (Vite)\n\nCreate `src/plugins/analytics.ts`:\n\n```typescript\n// src/plugins/analytics.ts\nimport type { App } from 'vue'\nimport type { Router } from 'vue-router'\n\nconst GA_MEASUREMENT_ID = import.meta.env.VITE_GA_MEASUREMENT_ID\n\ndeclare global {\n interface Window {\n gtag: (...args: unknown[]) => void\n dataLayer: unknown[]\n }\n}\n\nexport const analyticsPlugin = {\n install(app: App, { router }: { router: Router }) {\n // Load gtag script\n const script = document.createElement('script')\n script.src = `https://www.googletagmanager.com/gtag/js?id=${GA_MEASUREMENT_ID}`\n script.async = true\n document.head.appendChild(script)\n\n window.dataLayer = window.dataLayer || []\n window.gtag = function gtag() {\n window.dataLayer.push(arguments)\n }\n window.gtag('js', new Date())\n window.gtag('config', GA_MEASUREMENT_ID)\n\n // Track route changes\n router.afterEach((to) => {\n window.gtag('config', GA_MEASUREMENT_ID, {\n page_path: to.fullPath,\n })\n })\n\n // Provide global methods\n app.config.globalProperties.$gtag = window.gtag\n }\n}\n```\n\n### Nuxt 3\n\nCreate `plugins/analytics.client.ts`:\n\n```typescript\n// plugins/analytics.client.ts\nexport default defineNuxtPlugin(() => {\n const config = useRuntimeConfig()\n const measurementId = config.public.gaMeasurementId\n\n if (!measurementId) return\n\n // Load gtag\n useHead({\n script: [\n {\n src: `https://www.googletagmanager.com/gtag/js?id=${measurementId}`,\n async: true,\n },\n {\n innerHTML: `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${measurementId}');\n `,\n },\n ],\n })\n\n // Track route changes\n const router = useRouter()\n router.afterEach((to) => {\n window.gtag('config', measurementId, {\n page_path: to.fullPath,\n })\n })\n})\n```\n\nAdd to `nuxt.config.ts`:\n\n```typescript\nexport default defineNuxtConfig({\n runtimeConfig: {\n public: {\n gaMeasurementId: process.env.NUXT_PUBLIC_GA_MEASUREMENT_ID,\n },\n },\n})\n```\n\n### Astro\n\nCreate `src/components/Analytics.astro`:\n\n```astro\n---\n// src/components/Analytics.astro\ninterface Props {\n measurementId: string\n}\n\nconst { measurementId } = Astro.props\n---\n\n